  
#include "ConfSock.h"

/******************** Configuracion Socket AF_INET ****************/
int32_t CListen(void){

	int32_t listener,PORT;
	struct sockaddr_in myaddr; // direcci�n del servidor
	int32_t yes=1; // para setsockopt() SO_REUSEADDR, m�s abajo
	
	
	// obtener socket a la escucha
	if ((listener = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
		perror("socket");
		exit(1);
	}
	if (setsockopt(listener, SOL_SOCKET, SO_REUSEADDR, &yes,sizeof(int32_t)) == -1) {
		perror("setsockopt");
		exit(1);
	}
	myaddr.sin_family = AF_INET;
	myaddr.sin_addr.s_addr = INADDR_ANY;
	
	//PORT = ObtenerPuerto(); FUNCION A IMPLEMENTAR!
	PORT=ObtenerPuerto();
	myaddr.sin_port = htons(PORT);
	memset(&(myaddr.sin_zero), '\0', 8);
	if (bind(listener, (struct sockaddr *)&myaddr, sizeof(myaddr)) == -1) {
		perror("bind");
		exit(1);
	}
	// escuchar
	if (listen(listener,10) == -1) {
		perror("listen");
		exit(1);
	}
	return listener;
}
